<?php
###############   COPYLEFT GPLv3 LICENSE   ###############
##
## JFX Version 0.2.9
## Website Management Software
## www.jfxcms.com
##
## Copyright 2009 GPLv3 - http://www.opensource.org/licenses/gpl-3.0.html
##
## Anthony Gallon
## oi_antz@hotmail.com
##
## Permission is hereby granted to any person having a copy of this software
## to freely use and modify as required so long as the copyright notices
## and branding remain intact.
##
## Full license details available at http://www.jfxcms.com/license
##
###############   COPYLEFT GPLv3 LICENSE   ###############

class JFX_Module_Blockstyle_Widget_Base
{
	public $id = '';
	public $instanceId = '';
	public $cssName = '';
	public $name = '';
	public $enabled = 0;
	public $value = 0;
	public $open = 0;
	public $elementId = '';
	public $propertyInstanceId = '';
	public $privateProperties = array();
	public $runtimeProperties = array();

	public function getCssValue(){
		return $this->value.''.$this->unit;
	}

	public function __construct(JFX_Module_Blockstyle_Property_Base $property, $instanceId='') {
		if($this->name==''){
			$this->name = $this->id;
		}
		$this->cssName = $property->cssName;
		$this->propertyInstanceId = $property->instanceId;
		$this->elementId = $property->elementId;
		if($instanceId!=''){
			$this->instanceId = $instanceId;
		}
	}

	public function updateFromJson($widget){
		foreach(get_object_vars($widget) as $k=>$v){
			$this->setProperty($k, $v);
		}
	}

	public function setProperty($name, $value){
		if(isset($this->$name) && !in_array($name, $this->privateProperties)){
			$this->$name = $value;
		}
	}


	public function prepareJson(){
		foreach($this->runtimeProperties as $propertyName){
			if(isset($this->$propertyName)){
				$this->propertyName = null;
			}
		}
	}


}